用代码来阐述

看这段代码:

1
if ((employee.flags & HOURLY_FLAG) && (employee.age > 65))

我们对其进行如下重构:

1
if (employee.isEligibleForFullBenefits())

做上面的修改之后,我们一眼就能看出代码的意图,很多时候,简单到只需要创建一个描述与注释所言同一事物的函数即可。

括号后面的注释

有时,程序员会在括号后面放置特殊的注释,尽管这对于含有深度嵌套结构的长函数可能有意义,但只会给我们更愿意编写的短小、封装的函数带来混乱。如果你发现自己想标记右括号,其实应该做的是缩短函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public class wc {
public static void main(String[] args) {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String line;
int lineCount = 0;
int charCount = 0;
int wordCount = 0;
try {
while ((line = in.readLine()) != null) {
lineCount++;
charCount += line.length();
String[] words = line.split("\\W");
wordCount += words.length;
} // while
System.out.println("wordCount = " + wordCount);
System.out.println("lineCount = " + lineCount);
System.out.println("charCount = " + charCount);
} // try catch (IOException e) {
System.err.println("Error:" + e.getMessage());
} // catch
} // main
}

归属和签名

源代码控制系统非常善于记住是谁在何时添加了什么,所以没必要用那些小小的签名搞脏代码。

注释掉的代码

对于注释掉的代码直接删掉,因为别人不知道注释掉的代码放在这里的意义是什么。

HTML注释

源代码注释中的HTML标记是一种厌恶,如果注释将由某种工具(例如Javadoc)抽取出来呈现到网页,那么该是工具而非程序员来负责给注释加上合适的HTML标签。